/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Estructuras;

import Estructuras.Tipos.Tab;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import prac3.operaciones.MensajeFacadeLocal;
import prac3.persistencia.Mensaje;

/**
 *
 * @author usuario_local
 */
public class Tablon {
    
   MensajeFacadeLocal mensajeFacade = lookupMensajeFacadeLocal();
   private static Tablon instance = null;
 

   protected Tablon() {
 
    }
    public static Tablon getInstance() {
      if(instance == null) {
         instance = new Tablon();
      }
      return instance;
   }
   public void meterCom(String usuario,String comentario){
       Mensaje men = new Mensaje();
       men.setContenido(comentario);
       men.setUsuario(usuario);
       Date fecha = new java.util.Date();
       men.setFecha(fecha);
       mensajeFacade.create(men);
   }
    @Override
    public String toString(){

        List<Mensaje> lista = mensajeFacade.findAll();
        int tam = lista.size();
        String s ="";
        int num = 1;
        for(int i = tam-1;i>=0;i--){
            s+="<texto class = \"fset\">Mensaje "+num+"</texto>\n";
            s+="<fieldset class=\"fAutorizado\">\n";
            s+="<texto class = \"fset\">";
            s+=lista.get(i).getFecha().toString().substring(0, 20)+" - ";
            s+="<B>"+lista.get(i).getUsuario()+"</B>: ";
            s+="<I>"+lista.get(i).getContenido()+"</I>";
            s+="</texto>\n";
            s+="</fieldset>\n";
            num++;
        }
        s+="</tbody>\n</table>\n";
        return s;
    }

    private MensajeFacadeLocal lookupMensajeFacadeLocal() {
        try {
            Context c = new InitialContext();
            return (MensajeFacadeLocal) c.lookup("java:global/Practica3/Practica3-ejb/MensajeFacade!prac3.operaciones.MensajeFacadeLocal");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }

}
